import Vue from 'vue'
import App from './App.vue'
// import router from './router'
// import store from './store'

// 导入全局自定义指令
import './directive/font'

// 导入过滤器
import './filter'

Vue.config.productionTip = false

// 全局指令定义
/* Vue.directive('font', {
  bind(el, bindings) {
    el.style.fontSize = '20px'
  }
}) */

// 全局过滤器
/* Vue.filter('substr2', (value, len = 10) => {
  if (value.length < len) return value
  return value.substr(0, len) + '...'
}) */

// 全局混入  本项目中所有的组件都会执行它，只会你定义了
/* Vue.mixin({
  created() {
    console.log(location.pathname === '/login');
    // token
    console.log('全局生命期--- created');
  }
}) */

// 全局组件
Vue.component('globalChild', {
  data() {
    return {
      title: '你好世界'
    }
  },
  // template在通过script引入vue.js时，是没有问题，在工程化时，只能使用render来解析
  // 嵌套认为子元素可能存在于多个
  // h => createElement 别名  => h仓库元素,它是一个函数
  // h
  // 参数1 标签名称
  // 参数2 标签属性
  // 参数3 文本或数组 文本对应的标签的内容，数组对应标签子元素
  render: h => h('div', { class: 'aaa' }, [h('h3', {}, '我是一个嵌套的模板')])
})

// 事件总线 创建一个事件总线
const bus = new Vue()

// 把当前变量通过prototype绑到Vue原型中
Vue.prototype.$bus = bus


new Vue({
  // router,
  // store,
  render: h => h(App)
}).$mount('#app')
